import { Injectable } from '@nestjs/common';
// 这是一个处理密码加密盐HASH和验证密码的库
import * as bcrypt from 'bcryptjs';
// 用于生成二维码的库
import * as svgCaptcha from 'svg-captcha';

@Injectable()
export class UtilityService {
  async hashPassword(password: string): Promise<string> {
    // 生成一个盐值,用于增强哈希的案例性
    const salt = await bcrypt.genSalt();
    // 使用生成的盐值对密码进行哈希,并返回哈希结果
    return bcrypt.hash(password, salt);
  }

  // 验证密码
  async comparePassword(password: string, hash: string): Promise<boolean> {
    // 比较密码和hash值是否匹配, true || false
    return bcrypt.compare(password, hash);
  }

  // 生成验证码
  generateCaptcha(option: Record<string, any>) {
    return svgCaptcha.create(option);
  }
}
